
Developing ZooKeepr
===================

This section of the documentation is designed to:

* Tools - making sure you have all the development tools that you need to get started
* Environments - making sure you can create and configure your environments to begin development
* Revision control - making sure you know how to branch, commit and push changes to appropriate branches and repositories

### Tools

In order to develop on ZooKeepr, you will need the following tools and preliminary knowledge.

* [Git](http://www.github.com) - Ideally, you will have some exposure to *source control* and *revision control* using git, and using local and remote repositories in GitHub. Here are some links to get you started if you're not already comfortable in git;
  - [Pro Git book online](http://git-scm.com/book/en/v2)
  - [Listing of Git clients](http://git-scm.com/downloads/guis)
  - [Scott Chacon of GitHub provides a video introduction to Git](https://www.youtube.com/watch?v=ZDR433b0HJY)

* [Python](https://www.python.org/) - Ideally, if you are developing, you will have some exposure to the Python programming language.
  - [Pylons](http://www.pylonsproject.org/) ZooKeepr is built in Pylons. An understanding of this framework will be useful.

* [Postgres](http://www.postgresql.org/) - The ZooKeepr backend is build on the Postgres relational database.

* [Alemic](https://alembic.readthedocs.org/en/latest/) - Alembic is used for database migration activities.

* HTML and CSS - the front end of ZooKeepr is built in HTML and CSS. It is useful to have at least a basic understanding of HTML and CSS.

### Environments

@TODO

### Revision control

1. First, you need to ensure that you have a [GitHub account](http://www.github.com)
2. Next, [fork](https://help.github.com/articles/fork-a-repo/) the [ZooKeepr Repository](https://github.com/zookeepr/zookeepr) into your own repository. You should now have a repository in your GitHub account called

```
https://github.com/your-github-username/zookeepr
```
3. Now, you need to [clone](https://help.github.com/articles/which-remote-url-should-i-use/) the repository you've just forked to your local development environment. We won't go into detail here - if you're on Linux, Mac or Windows, you will need to use the Git client or Git commands appropriate to your system.
4. 
